package com.itheima.exception;

import com.itheima.pojo.Result;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class ExceptionHandler {
    @org.springframework.web.bind.annotation.ExceptionHandler(Exception.class)
    public Result ex(Exception ex){
        ex.printStackTrace();
        String message = extractErrorMessage(ex);
        return Result.Error(message);
    }
    public String extractErrorMessage(Exception ex) {
        String message = ex.getMessage();
        // 查找“Cause:”后面的内容，这是实际的数据库错误信息
        int causeIndex = message.indexOf("Cause:");
        if (causeIndex != -1) {
            // 提取“Cause:”之后的内容，并去除前后的空白字符
            return message.substring(causeIndex + "Cause:".length()).trim();
        } else {
            // 如果没有找到“Cause:”，则返回整个消息
            return message;
        }
    }
}
